home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / libraries / bguim.m < prev    next >
Encoding:
Text File  |  1999-10-07  |  29.8 KB  |  937 lines

  1. /* -- Corrected by Daniel Kasmeroglu:                          -- *
  2.  * --                                                          -- *
  3.  * --    1. Tags from the system-modules were spelled like the -- *
  4.  * --       ones of the BGUI.library but they all were written -- *
  5.  * --       in upper case letters.                             -- *
  6.  * --    2. Some Tags for the view-object are missed and some  -- *
  7.  * --       has had a fault value.                             -- *
  8.  * --                                                   Deekah -- */
  9.  
  10. MODULE    'lib/amiga'
  11.  
  12. /*  $VER: libraries/bgui_macros.e 41.8 (01.02.97)
  13. **
  14. **  bgui.library macros
  15. **
  16. **  (C) Copyright 1996-1997 Ian J. Einman.
  17. **  (C) Copyright 1993-1996 Jaba Development.
  18. **  (C) Copyright 1993-1996 Jan van den Baard.
  19. **  (C) Copyright 1996-1997 Dominique Dutoit
  20. **  All Rights Reserved.
  21. **/
  22. CONST   BGUIMACROVERSION        = 41
  23. CONST   MACROS4BGUIVERSION      = 41
  24. /*      General object creation macros.   */
  25. #define LabelObject             BGUI_NewObjectA(BGUI_LABEL_IMAGE,[TAG_IGNORE,0
  26. #define FrameObject             BGUI_NewObjectA(BGUI_FRAME_IMAGE,[TAG_IGNORE,0
  27. #define VectorObject            BGUI_NewObjectA(BGUI_VECTOR_IMAGE,[TAG_IGNORE,0
  28.  
  29. #define HGroupObject            BGUI_NewObjectA(BGUI_GROUP_GADGET,[TAG_IGNORE,0
  30. #define VGroupObject            BGUI_NewObjectA(BGUI_GROUP_GADGET,[GROUP_Style,GRSTYLE_VERTICAL
  31. #define ButtonObject            BGUI_NewObjectA(BGUI_BUTTON_GADGET,[TAG_IGNORE,0
  32. #define ToggleObject            BGUI_NewObjectA(BGUI_BUTTON_GADGET,[GA_ToggleSelect,TRUE
  33. #define CycleObject             BGUI_NewObjectA(BGUI_CYCLE_GADGET,[TAG_IGNORE,0
  34. #define CheckBoxObject          BGUI_NewObjectA(BGUI_CHECKBOX_GADGET,[TAG_IGNORE,0
  35. #define InfoObject              BGUI_NewObjectA(BGUI_INFO_GADGET,[TAG_IGNORE,0
  36. #define StringObject            BGUI_NewObjectA(BGUI_STRING_GADGET,[TAG_IGNORE,0
  37. #define PropObject              BGUI_NewObjectA(BGUI_PROP_GADGET,[TAG_IGNORE,0
  38. #define IndicatorObject         BGUI_NewObjectA(BGUI_INDICATOR_GADGET,[TAG_IGNORE,0
  39. #define ProgressObject          BGUI_NewObjectA(BGUI_PROGRESS_GADGET,[TAG_IGNORE,0
  40. #define SliderObject            BGUI_NewObjectA(BGUI_SLIDER_GADGET,[TAG_IGNORE,0
  41. #define PageObject              BGUI_NewObjectA(BGUI_PAGE_GADGET,[TAG_IGNORE,0
  42. #define MxObject                BGUI_NewObjectA(BGUI_MX_GADGET,[TAG_IGNORE,0
  43. #define ListviewObject          BGUI_NewObjectA(BGUI_LISTVIEW_GADGET,[TAG_IGNORE,0
  44. #define ExternalObject          BGUI_NewObjectA(BGUI_EXTERNAL_GADGET,[GA_Left,0,GA_Top,0,GA_Width,0,GA_Height,0
  45. #define SeparatorObject         BGUI_NewObjectA(BGUI_SEPARATOR_GADGET,[TAG_IGNORE,0
  46. #define AreaObject              BGUI_NewObjectA(BGUI_AREA_GADGET,[TAG_IGNORE,0
  47. #define ViewObject              BGUI_NewObjectA(BGUI_VIEW_GADGET,[TAG_IGNORE,0
  48. #define PaletteObject           BGUI_NewObjectA(BGUI_PALETTE_GADGET,[TAG_IGNORE,0
  49. #define PopButtonObject         BGUI_NewObjectA(BGUI_POPBUTTON_GADGET,[TAG_IGNORE,0
  50.  
  51. #define WindowObject            BGUI_NewObjectA(BGUI_WINDOW_OBJECT,[TAG_IGNORE,0
  52. #define FileReqObject           BGUI_NewObjectA(BGUI_FILEREQ_OBJECT,[TAG_IGNORE,0
  53. #define FontReqObject           BGUI_NewObjectA(BGUI_FONTREQ_OBJECT,[TAG_IGNORE,0
  54. #define ScreenReqObject         BGUI_NewObjectA(BGUI_SCREENREQ_OBJECT,[TAG_IGNORE,0
  55. #define CommodityObject         BGUI_NewObjectA(BGUI_COMMODITY_OBJECT,[TAG_IGNORE,0
  56. #define ARexxObject             BGUI_NewObjectA(BGUI_AREXX_OBJECT,[TAG_IGNORE,0
  57. #define EndObject               TAG_END])
  58.  
  59. /* Typo */
  60. #define SeperatorObject         SeparatorObject
  61.  
  62. /* Label Creation */
  63. #define Label( l )              LAB_Label, l
  64. #define UScoreLabel( l, u )     LAB_Label, l, LAB_Underscore, u
  65. #define Style( s )              LAB_Style, s
  66. #define Place( p )              LAB_Place, p
  67.  
  68. /* Frames */
  69. #define ButtonFrame             FRM_Type, FRTYPE_BUTTON
  70. #define RidgeFrame              FRM_Type, FRTYPE_RIDGE
  71. #define DropBoxFrame            FRM_Type, FRTYPE_DROPBOX
  72. #define NeXTFrame               FRM_Type, FRTYPE_NEXT
  73. #define RadioFrame              FRM_Type, FRTYPE_RADIOBUTTON
  74. #define XenFrame                FRM_Type, FRTYPE_XEN_BUTTON
  75. #define TabAboveFrame           FRM_Type, FRTYPE_TAB_ABOVE
  76. #define TabBelowFrame           FRM_Type, FRTYPE_TAB_BELOW
  77. #define BorderFrame             FRM_Type, FRTYPE_BORDER
  78. #define FuzzButtonFrame         FRM_Type, FRTYPE_FUZZ_BUTTON
  79. #define FuzzRidgeFrame          FRM_Type, FRTYPE_FUZZ_RIDGE
  80. #define NoFrame                 FRM_Type, FRTYPE_NONE
  81. #define DefaultFrame            FRM_Type, FRTYPE_DEFAULT
  82.  
  83. /* For clarity */
  84. #define StringFrame             RidgeFrame
  85. #define MxFrame                 RadioFrame
  86.  
  87. #define FrameTitle(t)           FRM_Title, t
  88.  
  89. /* Built-in back fills */
  90. #define ShineRaster             FRM_BackFill, SHINE_RASTER
  91. #define ShadowRaster            FRM_BackFill, SHADOW_RASTER
  92. #define ShineShadowRaster       FRM_BackFill, SHINE_SHADOW_RASTER
  93. #define FillRaster              FRM_BackFill, FILL_RASTER
  94. #define ShineFillRaster         FRM_BackFill, SHINE_FILL_RASTER
  95. #define ShadowFillRaster        FRM_BackFill, SHADOW_FILL_RASTER
  96. #define ShineBlock              FRM_BackFill, SHINE_BLOCK
  97. #define ShadowBlock             FRM_BackFill, SHADOW_BLOCK
  98.  
  99. /* Vector image */
  100. #define GetPath                 VIT_BuiltIn, BUILTIN_GETPATH
  101. #define GetFile                 VIT_BuiltIn, BUILTIN_GETFILE
  102. #define CheckMark               VIT_BuiltIn, BUILTIN_CHECKMARK
  103. #define PopUp                   VIT_BuiltIn, BUILTIN_POPUP
  104. #define ArrowUp                 VIT_BuiltIn, BUILTIN_ARROW_UP
  105. #define ArrowDown               VIT_BuiltIn, BUILTIN_ARROW_DOWN
  106. #define ArrowLeft               VIT_BuiltIn, BUILTIN_ARROW_LEFT
  107. #define ArrowRight              VIT_BuiltIn, BUILTIN_ARROW_RIGHT
  108.  
  109. /* Group class macros */
  110. #define StartMember             GROUP_Member
  111. #define EndMember               TAG_END, 0
  112. #define Spacing(p)              GROUP_Spacing, p
  113. #define Offset(p)               GROUP_Offset, p
  114. #define HOffset(p)              GROUP_HorizOffset, p
  115. #define VOffset(p)              GROUP_VertOffset, p
  116. #define LOffset(p)              GROUP_LeftOffset, p
  117. #define ROffset(p)              GROUP_RightOffset, p
  118. #define TOffset(p)              GROUP_TopOffset, p
  119. #define BOffset(p)              GROUP_BottomOffset, p
  120. #define VarSpace(w)             GROUP_SpaceObject, w
  121. #define EqualWidth              GROUP_EqualWidth, TRUE
  122. #define EqualHeight             GROUP_EqualHeight, TRUE
  123.  
  124. #define NormalSpacing           GROUP_Spacing, GRSPACE_NORMAL
  125. #define NormalHOffset           GROUP_HorizOffset, GRSPACE_NORMAL
  126. #define NormalVOffset           GROUP_VertOffset, GRSPACE_NORMAL
  127. #define NarrowSpacing           GROUP_Spacing, GRSPACE_NARROW
  128. #define NarrowHOffset           GROUP_HorizOffset, GRSPACE_NARROW
  129. #define NarrowVOffset           GROUP_VertOffset, GRSPACE_NARROW
  130. #define WideSpacing             GROUP_Spacing, GRSPACE_WIDE
  131. #define WideHOffset             GROUP_HorizOffset, GRSPACE_WIDE
  132. #define WideVOffset             GROUP_VertOffset, GRSPACE_WIDE
  133. #define NormalOffset            NormalHOffset, NormalVOffset
  134.  
  135. /* Layout macros */
  136. #define FixMinWidth             LGO_FixMinWidth, TRUE
  137. #define FixMinHeight            LGO_FixMinHeight, TRUE
  138. #define Weight(w)               LGO_Weight, w
  139. #define FixWidth(w)             LGO_FixWidth, w
  140. #define FixHeight(h)            LGO_FixHeight, h
  141. #define Align                   LGO_Align, TRUE
  142. #define FixMinSize              FixMinWidth, FixMinHeight
  143. #define FixSize(w,h)            FixWidth(w), FixHeight(h)
  144. #define NoAlign                 LGO_NoAlign, TRUE
  145. #define FixAspect(x,y)          LGO_FixAspect, ( (Shl(x,16)) OR (y) )
  146.  
  147. /* Page class macros */
  148. #define PageMember              PAGE_Member
  149.  
  150. /* "Quick" button creation macros */
  151. #define PrefButton(label,id)\
  152.         ButtonObject,\
  153.                 LAB_Label,label,\
  154.                 GA_ID,id,\
  155.         EndObject
  156.  
  157. #define Button(label,id)\
  158.         ButtonObject,\
  159.                 LAB_Label,label,\
  160.                 GA_ID,id,\
  161.                 ButtonFrame,\
  162.         EndObject
  163.  
  164. #define GetPathButton(id)\
  165.         ButtonObject,\
  166.                 GetPath,\
  167.                 GA_ID,id,\
  168.                 ButtonFrame,\
  169.         EndObject,FixMinWidth
  170.  
  171. #define GetFileButton(id)\
  172.         ButtonObject,\
  173.                 GetFile,\
  174.                 GA_ID,id,\
  175.                 ButtonFrame,\
  176.         EndObject,FixMinWidth
  177.  
  178. #define PopupButton(id)\
  179.         ButtonObject,\
  180.                 VIT_BuiltIn,BUILTIN_POPUP,\
  181.                 GA_ID,id,\
  182.                 ButtonFrame,\
  183.         EndObject,FixMinWidth
  184.  
  185. #define KeyButton(label,id)    Button(label,id)
  186.  
  187. #define PrefToggle(label,state,id)\
  188.         ToggleObject,\
  189.                 LAB_Label,              label,\
  190.                 GA_ID,                  id,\
  191.                 GA_Selected,            state,\
  192.         EndObject
  193.  
  194. #define Toggle(label,state,id)\
  195.         ToggleObject,\
  196.                 LAB_Label,              label,\
  197.                 GA_ID,                  id,\
  198.                 GA_Selected,            state,\
  199.                 ButtonFrame,\
  200.         EndObject
  201.  
  202. #define KeyToggle(label,state,id)   Toggle(label,state,id)
  203.  
  204. #define XenButton(label,id)\
  205.         ButtonObject,\
  206.                 LAB_Label,              label,\
  207.                 GA_ID,                  id,\
  208.                 XenFrame,\
  209.         EndObject
  210.  
  211. #define XenKeyButton(label,id)    XenButton(label,id)
  212.  
  213. #define XenToggle(label,state,id)\
  214.         ToggleObject,\
  215.                 LAB_Label,              label,\
  216.                 GA_ID,                  id,\
  217.                 GA_Selected,            state,\
  218.                 XenFrame,\
  219.         EndObject
  220.  
  221. #define XenKeyToggle(label,state,id)    XenToggle(label,state,id)
  222.  
  223. /* "Quick" cycle creation macros. */
  224. #define PrefCycle(label,labels,active,id)\
  225.         CycleObject,\
  226.                 LAB_Label,              label,\
  227.                 GA_ID,                  id,\
  228.                 CYC_Labels,             labels,\
  229.                 CYC_Active,             active,\
  230.         EndObject
  231.  
  232. #define Cycle(label,labels,active,id)\
  233.         CycleObject,\
  234.                 LAB_Label,              label,\
  235.                 GA_ID,                  id,\
  236.                 ButtonFrame,\
  237.                 CYC_Labels,             labels,\
  238.                 CYC_Active,             active,\
  239.                 CYC_Popup,              FALSE,\
  240.         EndObject
  241.  
  242. #define KeyCycle(label,labels,active,id)    Cycle(label,labels,active,id)
  243.  
  244. #define XenCycle(label,labels,active,id)\
  245.         CycleObject,\
  246.                 LAB_Label,              label,\
  247.                 GA_ID,                  id,\
  248.                 XenFrame,\
  249.                 CYC_Labels,             labels,\
  250.                 CYC_Active,             active,\
  251.                 CYC_Popup,              FALSE,\
  252.         EndObject
  253.  
  254. #define XenKeyCycle(label,labels,active,id)     XenCycle(label,labels,active,id)
  255.  
  256. #define PopCycle(label,labels,active,id)\
  257.         CycleObject,\
  258.                 LAB_Label,              label,\
  259.                 GA_ID,                  id,\
  260.                 ButtonFrame,\
  261.                 CYC_Labels,             labels,\
  262.                 CYC_Active,             active,\
  263.                 CYC_PopUp,              TRUE,\
  264.         EndObject
  265.  
  266. #define KeyPopCycle(label,labels,active,id)     PopCycle(label,labels,active,id)
  267.  
  268. #define XenPopCycle(label,labels,active,id)\
  269.         CycleObject,\
  270.                 LAB_Label,              label,\
  271.                 GA_ID,                  id,\
  272.                 XenFrame,\
  273.                 CYC_Labels,             labels,\
  274.                 CYC_Active,             active,\
  275.                 CYC_PopUp,              TRUE,\
  276.         EndObject
  277.  
  278. #define XenKeyPopCycle(label,labels,active,id)      XenPopCycle(label,labels,active,id)
  279.  
  280. /* "Quick" checkbox creation macros. */
  281. #define PrefCheckBoxNF(label,state,id)\
  282.         CheckBoxObject,\
  283.                 LAB_Label,              label,\
  284.                 GA_ID,                  id,\
  285.                 GA_Selected,            state,\
  286.         EndObject, FixMinSize
  287.  
  288. #define CheckBoxNF(label,state,id)\
  289.         CheckBoxObject,\
  290.                 LAB_Label,              label,\
  291.                 GA_ID,                  id,\
  292.                 GA_Selected,            state,\
  293.         EndObject, FixMinSize
  294.  
  295. #define XenCheckBoxNF(label,state,id)\
  296.         CheckBoxObject,\
  297.                 LAB_Label,              label,\
  298.                 GA_ID,                  id,\
  299.                 XenFrame,\
  300.                 GA_Selected,            state,\
  301.         EndObject, FixMinSize
  302.  
  303. #define PrefCheckBox(label,state,id) PrefCheckBoxNF(label,state,id), FixMinSize
  304. #define CheckBox(label,state,id)     CheckBoxNF(label,state,id), FixMinSize
  305. #define XenCheckBox(label,state,id)  XenCheckBoxNF(label,state,id), FixMinSize
  306.  
  307. #define KeyCheckBoxNF(label,state,id)    CheckBoxNF(label,state,id)
  308. #define XenKeyCheckBoxNF(label,state,id) XenCheckBoxNF(label,state,id)
  309. #define KeyCheckBox(label,state,id)      CheckBox(label,state,id)
  310. #define XenKeyCheckBo(label,state,id)x   XenCheckBox(label,state,id)
  311.  
  312. /* "Quick" info object creation macros. */
  313. #define PrefInfoFixed(label,text,args,numlines)\
  314.         InfoObject,\
  315.                 LAB_Label,              label,\
  316.                 DefaultFrame,\
  317.                 INFO_TextFormat,        text,\
  318.                 INFO_Args,              args,\
  319.                 INFO_MinLines,          numlines,\
  320.                 INFO_FixTextWidth,      TRUE,\
  321.         EndObject
  322.  
  323. #define PrefInfo(label,text,args,numlines)\
  324.         InfoObject,\
  325.                 LAB_Label,              label,\
  326.                 DefaultFrame,\
  327.                 INFO_TextFormat,        text,\
  328.                 INFO_Args,              args,\
  329.                 INFO_MinLines,          numlines,\
  330.         EndObject
  331.  
  332. #define InfoFixed(label,text,args,numlines)\
  333.         InfoObject,\
  334.                 LAB_Label,              label,\
  335.                 ButtonFrame,\
  336.                 FRM_Flags,              FRF_RECESSED,\
  337.                 INFO_TextFormat,        text,\
  338.                 INFO_Args,              args,\
  339.                 INFO_MinLines,          numlines,\
  340.                 INFO_FixTextWidth,      TRUE,\
  341.         EndObject
  342.  
  343. #define InfoObj(label,text,args,numlines)\
  344.         InfoObject,\
  345.                 LAB_Label,              label,\
  346.                 ButtonFrame,\
  347.                 FRM_Flags,              FRF_RECESSED,\
  348.                 INFO_TextFormat,        text,\
  349.                 INFO_Args,              args,\
  350.                 INFO_MinLines,          numlines,\
  351.         EndObject
  352.  
  353. /* "Quick" string/integer creation macros. */
  354.  
  355. #define PrefString(label,contents,maxchars,id)\
  356.         StringObject,\
  357.                 LAB_Label,              label,\
  358.                 STRINGA_TextVal,        contents,\
  359.                 STRINGA_MaxChars,       maxchars,\
  360.                 GA_ID,                  id,\
  361.                 GA_TabCycle,            TRUE,\
  362.         EndObject
  363.  
  364. #define StringG(label,contents,maxchars,id)\
  365.         StringObject,\
  366.                 LAB_Label,              label,\
  367.                 RidgeFrame,\
  368.                 STRINGA_TextVal,        contents,\
  369.                 STRINGA_MaxChars,       maxchars,\
  370.                 GA_ID,                  id,\
  371.         EndObject
  372.  
  373. #define TabString(label,contents,maxchars,id)\
  374.         StringObject,\
  375.                 LAB_Label,              label,\
  376.                 RidgeFrame,\
  377.                 STRINGA_TextVal,        contents,\
  378.                 STRINGA_MaxChars,       maxchars,\
  379.                 GA_ID,                  id,\
  380.                 GA_TabCycle,            TRUE,\
  381.         EndObject
  382.  
  383. #define PrefInteger(label,contents,maxchars,id)\
  384.         StringObject,\
  385.                 LAB_Label,              label,\
  386.                 STRINGA_LongVal,        contents,\
  387.                 STRINGA_MaxChars,       maxchars,\
  388.                 GA_ID,                  id,\
  389.                 GA_TabCycle,            TRUE,\
  390.         EndObject
  391.  
  392. #define Integer(label,contents,maxchars,id)\
  393.         StringObject,\
  394.                 LAB_Label,              label,\
  395.                 RidgeFrame,\
  396.                 STRINGA_LongVal,        contents,\
  397.                 STRINGA_MaxChars,       maxchars,\
  398.                 GA_ID,                  id,\
  399.         EndObject
  400.  
  401. #define TabInteger(label,contents,maxchars,id)\
  402.         StringObject,\
  403.                 LAB_Label,              label,\
  404.                 RidgeFrame,\
  405.                 STRINGA_LongVal,        contents,\
  406.                 STRINGA_MaxChars,       maxchars,\
  407.                 GA_ID,                  id,\
  408.                 GA_TabCycle,            TRUE,\
  409.         EndObject
  410.  
  411. #define KeyString(label,contents,maxchars,id)       StringG(label,contents,maxchars,id)
  412. #define TabKeyString(label,contents,maxchars,id)    TabString(label,contents,maxchars,id)
  413. #define KeyInteger(label,contents,maxchars,id)      Integer(label,contents,maxchars,id)
  414. #define TabKeyInteger(label,contents,maxchars,id)   TabInteger(label,contents,maxchars,id)
  415.  
  416. /* STRINGA_PENS & STRINGA_ACTIVEPENS pen-pack macro */
  417. #define PACKPENS( a, b) (((Shl( b, 8) AND $FF00) OR (( a ) AND $00FF))
  418.  
  419. /* "Quick" scroller creation macros. */
  420. #define HorizScroller(label,top,total,visible,id)\
  421.         PropObject,\
  422.                 LAB_Label,              label,\
  423.                 PGA_Top,                top,\
  424.                 PGA_Total,              total,\
  425.                 PGA_Visible,            visible,\
  426.                 PGA_Freedom,            FREEHORIZ,\
  427.                 GA_ID,                  id,\
  428.                 PGA_Arrows,             TRUE,\
  429.         EndObject
  430.  
  431. #define VertScroller(label,top,total,visible,id)\
  432.         PropObject,\
  433.                 LAB_Label,              label,\
  434.                 PGA_Top,                top,\
  435.                 PGA_Total,              total,\
  436.                 PGA_Visible,            visible,\
  437.                 GA_ID,                  id,\
  438.                 PGA_Arrows,             TRUE,\
  439.         EndObject
  440.  
  441. #define KeyHorizScroller(label,top,total,visible,id)    HorizScroller(label,top,total,visible,id)
  442. #define KeyVertScroller(label,top,total,visible,id)     VertScroller(label,top,total,visible,id)
  443.  
  444. /* "Quick" indicator creation macros. */
  445. #define Indicator(min,max,level,just)\
  446.         IndicatorObject,\
  447.                 INDIC_Min,              min,\
  448.                 INDIC_Max,              max,\
  449.                 INDIC_Level,            level,\
  450.                 INDIC_Justification,    just,\
  451.         EndObject
  452.  
  453. #define IndicatorFormat(min,max,level,just,format)\
  454.         IndicatorObject,\
  455.                 INDIC_Min,              min,\
  456.                 INDIC_Max,              max,\
  457.                 INDIC_Level,            level,\
  458.                 INDIC_Justification,    just,\
  459.                 INDIC_FormatString,     format,\
  460.         EndObject
  461.  
  462. /* "Quick" progress creation macros. */
  463. #define HorizProgress(label,min,max,done)\
  464.         ProgressObject,\
  465.                 LAB_Label,              label,\
  466.                 ButtonFrame,\
  467.                 FRM_Flags,              FRF_RECESSED,\
  468.                 PROGRESS_Min,           min,\
  469.                 PROGRESS_Max,           max,\
  470.                 PROGRESS_Done,          done,\
  471.         EndObject
  472.  
  473. #define VertProgress(label,min,max,done)\
  474.         ProgressObject,\
  475.                 LAB_Label,              label,\
  476.                 ButtonFrame,\
  477.                 FRM_Flags,              FRF_RECESSED,\
  478.                 PROGRESS_Min,           min,\
  479.                 PROGRESS_Max,           max,\
  480.                 PROGRESS_Done,          done,\
  481.                 PROGRESS_Vertical,      TRUE,\
  482.         EndObject
  483.  
  484. #define HorizProgressFS(label,min,max,done,fstr)\
  485.         ProgressObject,\
  486.                 LAB_Label,              label,\
  487.                 ButtonFrame,\
  488.                 FRM_Flags,              FRF_RECESSED,\
  489.                 PROGRESS_Min,           min,\
  490.                 PROGRESS_Max,           max,\
  491.                 PROGRESS_Done,          done,\
  492.                 PROGRESS_FormatString,  fstr,\
  493.         EndObject
  494.  
  495. #define VertProgressFS(label,min,max,done,fstr)\
  496.         ProgressObject,\
  497.                 LAB_Label,              label,\
  498.                 ButtonFrame,\
  499.                 FRM_Flags,              FRF_RECESSED,\
  500.                 PROGRESS_Min,           min,\
  501.                 PROGRESS_Max,           max,\
  502.                 PROGRESS_Done,          done,\
  503.                 PROGRESS_Vertical,      TRUE,\
  504.                 PROGRESS_FormatString,  fstr,\
  505.         EndObject
  506.  
  507. /* "Quick" slider creation macros. */
  508. #define HorizSlider(label,min,max,level,id)\
  509.         SliderObject,\
  510.                 LAB_Label,              label,\
  511.                 SLIDER_Min,             min,\
  512.                 SLIDER_Max,             max,\
  513.                 SLIDER_Level,           level,\
  514.                 GA_ID,                  id,\
  515.         EndObject
  516.  
  517. #define VertSlider(label,min,max,level,id)\
  518.         SliderObject,\
  519.                 LAB_Label,              label,\
  520.                 SLIDER_Min,             min,\
  521.                 SLIDER_Max,             max,\
  522.                 SLIDER_Level,           level,\
  523.                 PGA_Freedom,            FREEVERT,\
  524.                 GA_ID,                  id,\
  525.         EndObject
  526.  
  527. #define KeyHorizSlider HorizSlider
  528. #define KeyVertSlider  VertSlider
  529.  
  530. /* "Quick" mx creation macros. */
  531. #define PrefMx(label,labels,active,id)\
  532.         MxObject,\
  533.                 GROUP_Style,            GRSTYLE_VERTICAL,\
  534.                 LAB_Label,              label,\
  535.                 MX_Labels,              labels,\
  536.                 MX_Active,              active,\
  537.                 GA_ID,                  id,\
  538.         EndObject, FixMinSize
  539.  
  540. #define RightMx(label,labels,active,id)\
  541.         MxObject,\
  542.                 GROUP_Style,            GRSTYLE_VERTICAL,\
  543.                 LAB_Label,              label,\
  544.                 MX_Labels,              labels,\
  545.                 MX_Active,              active,\
  546.                 MX_LabelPlace,          PLACE_RIGHT,\
  547.                 GA_ID,                  id,\
  548.         EndObject, FixMinSize
  549.  
  550. #define LeftMx(label,labels,active,id)\
  551.         MxObject,\
  552.                 GROUP_Style,            GRSTYLE_VERTICAL,\
  553.                 LAB_Label,              label,\
  554.                 MX_Labels,              labels,\
  555.                 MX_Active,              active,\
  556.                 MX_LabelPlace,          PLACE_LEFT,\
  557.                 GA_ID,                  id,\
  558.         EndObject, FixMinSize
  559.  
  560. #define Tabs(label,labels,active,id)\
  561.         MxObject,\
  562.                 MX_TabsObject,          TRUE,\
  563.                 LAB_Label,              label,\
  564.                 MX_Labels,              labels,\
  565.                 MX_Active,              active,\
  566.                 GA_ID,                  id,\
  567.         EndObject, FixMinHeight
  568.  
  569.  
  570. #define TabsEqual(label,labels,active,id)\
  571.         MxObject,\
  572.                 GROUP_EqualWidth,       TRUE,\
  573.                 MX_TabsObject,          TRUE,\
  574.                 LAB_Label,              label,\
  575.                 MX_Labels,              labels,\
  576.                 MX_Active,              active,\
  577.                 GA_ID,                  id,\
  578.         EndObject, FixMinHeight
  579.  
  580. #define USDTabs(label,labels,active,id)\
  581.         MxObject,\
  582.                 MX_TabsObject,          TRUE,\
  583.                 LAB_Label,              label,\
  584.                 MX_Labels,              labels,\
  585.                 MX_Active,              active,\
  586.                 MX_TabsUpsideDown,      TRUE,\
  587.                 GA_ID,                  id,\
  588.         EndObject, FixMinHeight
  589.  
  590. #define USDTabsEqual(label,labels,active,id)\
  591.         MxObject,\
  592.                 GROUP_EqualWidth,       TRUE,\
  593.                 MX_TabsObject,          TRUE,\
  594.                 LAB_Label,              label,\
  595.                 MX_Labels,              labels,\
  596.                 MX_Active,              active,\
  597.                 MX_TabsUpsideDown,      TRUE,\
  598.                 GA_ID,                  id,\
  599.         EndObject, FixMinHeight
  600.  
  601. #define RightMxKey(label,labels,active,id)          RightMx(label,labels,active,id)
  602. #define LeftMxKey(label,labels,active,id)           LeftMx(label,labels,active,id)
  603. #define TabsKey(label,labels,active,id)             Tabs(label,labels,active,id)
  604. #define TabsEqualKey(label,labels,active,id)        TabsEqual(label,labels,active,id)
  605. #define USDTabsKey(label,labels,active,id)          USDTabs(label,labels,active,id)
  606. #define USDTabsEqualKey(label,labels,active,id)     USDTabsEqual(label,labels,active,id)
  607.  
  608. /* "Quick" listview creation macros. */
  609. #define StrListview(label,strings,id)\
  610.         ListviewObject,\
  611.                 LAB_Label,              label,\
  612.                 GA_ID,                  id,\
  613.                 LISTV_EntryArray,       strings,\
  614.         EndObject
  615.  
  616. #define StrListviewSorted(label,strings,id)\
  617.         ListviewObject,\
  618.                 LAB_Label,              label,\
  619.                 GA_ID,                  id,\
  620.                 LISTV_EntryArray,       strings,\
  621.                 LISTV_SortEntryArray,   TRUE,\
  622.         EndObject
  623.  
  624. #define ReadStrListview(label,strings)\
  625.         ListviewObject,\
  626.                 LAB_Label,              label,\
  627.                 LISTV_EntryArray,       strings,\
  628.                 LISTV_ReadOnly,         TRUE,\
  629.         EndObject
  630.  
  631. #define ReadStrListviewSorted(label,strings)\
  632.         ListviewObject,\
  633.                 LAB_Label,              label,\
  634.                 LISTV_EntryArray,       strings,\
  635.                 LISTV_SortEntryArray,   TRUE,\
  636.                 LISTV_ReadOnly,         TRUE,\
  637.         EndObject
  638.  
  639. #define MultiStrListview(label,strings,id)\
  640.         ListviewObject,\
  641.                 LAB_Label,              label,\
  642.                 GA_ID,                  id,\
  643.                 LISTV_EntryArray,       strings,\
  644.                 LISTV_MultiSelect,      TRUE,\
  645.         EndObject
  646.  
  647. #define MultiStrListviewSorted(label,strings,id)\
  648.         ListviewObject,\
  649.                 LAB_Label,              label,\
  650.                 GA_ID,                  id,\
  651.                 LISTV_EntryArray,       strings,\
  652.                 LISTV_SortEntryArray,   TRUE,\
  653.                 LISTV_MultiSelect,      TRUE,\
  654.         EndObject
  655.  
  656. /* "Quick" separator bar creation macros. */
  657. #define VertSeparator\
  658.         SeperatorObject,\
  659.         EndObject, FixMinWidth
  660.  
  661. #define VertThinSeparator\
  662.         SeperatorObject,\
  663.                 SEP_Thin,               TRUE,\
  664.         EndObject, FixMinWidth
  665.  
  666. #define HorizSeparator\
  667.         SeperatorObject,\
  668.                 SEP_Horiz,              TRUE,\
  669.         EndObject, FixMinHeight
  670.  
  671. #define TitleSeparator(t)\
  672.         SeperatorObject,\
  673.                 SEP_Horiz,              TRUE,\
  674.                 SEP_Title,              t,\
  675.         EndObject, FixMinHeight
  676.  
  677. #define HTitleSeparator(t)\
  678.         SeperatorObject,\
  679.                 SEP_Horiz,              TRUE,\
  680.                 SEP_Title,              t,\
  681.                 SEP_Highlight,          TRUE,\
  682.         EndObject, FixMinHeight
  683.  
  684. #define CTitleSeparator(t)\
  685.         SeperatorObject,\
  686.                 SEP_Horiz,              TRUE,\
  687.                 SEP_Title,              t,\
  688.                 SEP_CenterTitle,        TRUE,\
  689.         EndObject, FixMinHeight
  690.  
  691. #define CHTitleSeparator(t)\
  692.         SeperatorObject,\
  693.                 SEP_Horiz,              TRUE,\
  694.                 SEP_Title,              t,\
  695.                 SEP_Highlight,          TRUE,\
  696.                 SEP_CenterTitle,        TRUE,\
  697.         EndObject, FixMinHeight
  698.  
  699. #define TitleSeparatorLeft(t)\
  700.         SeperatorObject,\
  701.                 SEP_Horiz,              TRUE,\
  702.                 SEP_Title,              t,\
  703.                 SEP_TitleLeft,          TRUE,\
  704.         EndObject, FixMinHeight
  705.  
  706. #define HTitleSeparatorLeft(t)\
  707.         SeperatorObject,\
  708.                 SEP_Horiz,              TRUE,\
  709.                 SEP_Title,              t,\
  710.                 SEP_Highlight,          TRUE,\
  711.                 SEP_TitleLeft,          TRUE,\
  712.         EndObject, FixMinHeight
  713.  
  714. #define CTitleSeparatorLeft(t)\
  715.         SeperatorObject,\
  716.                 SEP_Horiz,              TRUE,\
  717.                 SEP_Title,              t,\
  718.                 SEP_CenterTitle,        TRUE,\
  719.                 SEP_TitleLeft,          TRUE,\
  720.         EndObject, FixMinHeight
  721.  
  722. #define CHTitleSeparatorLeft(t)\
  723.         SeperatorObject,\
  724.                 SEP_Horiz,              TRUE,\
  725.                 SEP_Title,              t,\
  726.                 SEP_Highlight,          TRUE,\
  727.                 SEP_CenterTitle,        TRUE,\
  728.                 SEP_TitleLeft,          TRUE,\
  729.         EndObject, FixMinHeight
  730.  
  731. /* Typos */
  732. #define VertSeperator           VertSeparator
  733. #define VertThinSeperator       VertThinSeparator
  734. #define HorizSeperator          HorizSeparator
  735. #define TitleSeperator          TitleSeparator
  736. #define HTitleSeperator         HTitleSeparator
  737. #define CTitleSeperator         CTitleSeparator
  738. #define CHTitleSeperator        CHTitleSeparator
  739.  
  740. /* Some simple menu macros */
  741. #define StartMenu              [ NM_IGNORE, 0, 0, NIL, 0, 0, NIL
  742. #define Title(t)                 NM_TITLE, 0, t, NIL, 0, 0, NIL
  743. #define Item(t,s,i)              NM_ITEM, 0, t, s, 0, 0, i
  744. #define ItemBar                  NM_ITEM, 0, NM_BARLABEL, NIL, 0, 0, NIL
  745. #define SubItem(t,s,i)           NM_SUB, 0, t, s, 0, 0, i
  746. #define SubBar                   NM_SUB, 0, NM_BARLABEL, NIL, 0, 0, NIL
  747. #define End                      NM_END, 0, NIL, NIL, 0, 0, NIL ]:newmenu
  748.  
  749. /* Some object macros */
  750. #define AbleObject(win,object,value)\
  751.         SetGadgetAttrsA(object,win,NIL,[GA_Disabled,value,TAG_DONE])
  752.  
  753. #define DisableObject(win,object)\
  754.         AbleObject(win,object,TRUE)
  755.  
  756. #define EnableObject(win,object)\
  757.         AbleObject(win,object,FALSE)
  758.  
  759. /* Base class method macros. */
  760. #define AddMap(object,target,map)\
  761.         DoMethod( object,BASE_ADDMAP, target, map)
  762.  
  763. #define AddCondit(object,target,ttag,tdat,ftag,fdat,stag,sdat)\
  764.         DoMethod( object,BASE_ADDCONDITIONAL, target,\
  765.                   ttag, tdat,\
  766.                   ftag, fdat,\
  767.                   stag, sdat)
  768.  
  769. #define AddHook(object,hook)\
  770.         DoMethod( object,BASE_ADDHOOK, hook)
  771.  
  772. #define RemMap(object,target)\
  773.         DoMethod( object,BASE_REMMAP, target )
  774.  
  775. #define RemCondit(object,target)\
  776.         DoMethod( object,BASE_REMCONDITIONAL, target)
  777.  
  778. #define RemHook( object,hook)\
  779.         DoMethod( object,BASE_REMHOOK, hook)
  780.  
  781. /* Listview class method macros. */
  782. #define AddEntry(window,object,entry,how)\
  783.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  784.                              NIL, entry, how, 0 ] )
  785.  
  786. #define AddEntryVisible(window,object,entry,how)\
  787.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  788.                              NIL, entry, how, LVASF_MAKEVISIBLE ] )
  789.  
  790. #define AddEntrySelect(window,object,entry,how)\
  791.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  792.                              NIL, entry, how, LVASF_SELECT ] )
  793.  
  794. #define InsertEntry(window,object,entry,where)\
  795.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  796.                             NIL, where, entry, 0 ] )
  797.  
  798. #define InsertEntryVisible(window,object,entry,where)\
  799.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  800.                              NIL, where, entry, LVASF_MAKEVISIBLE ] )
  801.  
  802. #define InsertEntrySelect(window,object,entry,where)\
  803.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  804.                             NIL, where, entry, LVASF_SELECT ] )
  805.  
  806. #define ClearList(window,object)\
  807.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_CLEAR, NIL ] )
  808.  
  809. #define FirstEntry(object)\
  810.         DoMethod( object,LVM_FIRSTENTRY, NIL, 0)
  811.  
  812. #define FirstSelected(object)\
  813.         DoMethod( object,LVM_FIRSTENTRY, NIL, LVGEF_SELECTED)
  814.  
  815. #define LastEntry(object)\
  816.         DoMethod( object,LVM_LASTENTRY, NIL, 0)
  817.  
  818. #define LastSelected(object)\
  819.         DoMethod( object,LVM_LASTENTRY, NIL, LVGEF_SELECTED)
  820.  
  821. #define NextEntry(object,last)\
  822.         DoMethod( object,LVM_NEXTENTRY, last, 0)
  823.  
  824. #define NextSelected(object,last)\
  825.         DoMethod( object,LVM_NEXTENTRY, last, LVGEF_SELECTED)
  826.  
  827. #define PrevEntry(object,last)\
  828.         DoMethod( object,LVM_PREVENTRY, last, 0)
  829.  
  830. #define PrevSelected(object,last)\
  831.         DoMethod( object,LVM_PREVENTRY, last, LVGEF_SELECTED)
  832.  
  833. #define RemoveEntry(object,entry)\
  834.         DoMethod( object,LVM_REMENTRY, NIL, entry)
  835.  
  836. #define RemoveEntryVisible(window,object,entry)\
  837.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMENTRY, NIL, entry ] )
  838.  
  839. #define RefreshList(window,object)\
  840.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REFRESH, NIL ] )
  841.  
  842. #define RedrawList(window,object)\
  843.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REDRAW, NIL ] )
  844.  
  845. #define SortList(window,object)\
  846.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_SORT, NIL ] )
  847.  
  848. #define LockList(object)\
  849.         DoMethod( object,LVM_LOCKLIST, NIL)
  850.  
  851. #define UnlockList(window,object)\
  852.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_UNLOCKLIST, NIL ] )
  853.  
  854. #define MoveEntry(window,object,entry,dir)\
  855.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_MOVE, NIL,\
  856.                              entry, dir ] )
  857.  
  858. #define MoveSelectedEntry(window,object,dir)\
  859.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_MOVE, NIL,\
  860.                              NIL, dir ] )
  861.  
  862. #define ReplaceEntry(window,object,old,new)\
  863.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REPLACE, NIL,\
  864.                              old, new ] )
  865.  
  866. #define RemoveSelected(window,object)\
  867.         BGUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMSELECTED, NIL ] )
  868.  
  869. /* Window class method macros. */
  870. #define GadgetKey(wobj,gobj,key)\
  871.         DoMethod( wobj,WM_GADGETKEY, NIL, gobj, key)
  872.  
  873. #define WindowOpen(wobj)\
  874.         DoMethod( wobj,WM_OPEN)
  875.  
  876. #define WindowClose(wobj)\
  877.         DoMethod( wobj,WM_CLOSE)
  878.  
  879. #define WindowBusy(wobj)\
  880.         DoMethod( wobj,WM_SLEEP)
  881.  
  882. #define WindowReady(wobj)\
  883.         DoMethod( wobj,WM_WAKEUP)
  884.  
  885. #define HandleEvent(wobj)\
  886.         DoMethod( wobj,WM_HANDLEIDCMP)
  887.  
  888. #define DisableMenu(wobj,id,set)\
  889.         DoMethod( wobj,WM_DISABLEMENU, id, set)
  890.  
  891. #define CheckItem(wobj,id,set)\
  892.         DoMethod( wobj,WM_CHECKITEM, id, set)
  893.  
  894. #define MenuDisabled(wobj,id)\
  895.         DoMethod( wobj,WM_MENUDISABLED, id)
  896.  
  897. #define ItemChecked(wobj,id)\
  898.         DoMethod( wobj,WM_ITEMCHECKED, id)
  899.  
  900. #define GetAppMsg(wobj)\
  901.         DoMethod( wobj,WM_GETAPPMSG)
  902.  
  903. #define AddUpdate(wobj,id,target,map)\
  904.         DoMethod( wobj,WM_ADDUPDATE, id, target, map)
  905.  
  906. #define GetSignalWindow(wobj)\
  907.         DoMethod( wobj,WM_GET_SIGNAL_WINDOW)
  908.  
  909. /* Commodity class method macros. */
  910. #define AddHotkey(broker,desc,id,flags)\
  911.         DoMethod( broker,CM_ADDHOTKEY, desc, id, flags)
  912.  
  913. #define RemHotkey(broker,id)\
  914.         DoMethod( broker,CM_REMHOTKEY, id)
  915.  
  916. #define DisableHotkey(broker,id)\
  917.         DoMethod( broker,CM_DISABLEHOTKEY, id)
  918.  
  919. #define EnableHotKey(broker,id)\
  920.         DoMethod( broker,CM_ENABLEHOTKEY, id)
  921.  
  922. #define EnableBroker(broker)\
  923.         DoMethod( broker,CM_ENABLEBROKER)
  924.  
  925. #define DisableBroker(broker)\
  926.         DoMethod( broker,CM_DISABLEBROKER)
  927.  
  928. #define MsgInfo(broker,type,id,data)\
  929.         DoMethod( broker,CM_MSGINFO,\
  930.                             type,\
  931.                             id,\
  932.                             data)
  933.  
  934. /* FileReq class method macros. */
  935. #define DoRequest(object)\
  936.         DoMethod( object,ASLM_DOREQUEST)
  937.